/* Copyright 2008 Hycel Taylor
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.qagen.osfe.core.utils;

import com.qagen.osfe.core.EngineContext;
import com.qagen.osfe.dataAccess.context.DataAccessContext;
import com.qagen.osfe.dataAccess.service.FeedCheckpointService;
import com.qagen.osfe.dataAccess.vo.FeedCheckpoint;
import com.qagen.osfe.dataAccess.vo.FeedFile;

/**
 * Author: Hycel Taylor
 * <p/>
 */
public class CheckpointHelper {
  public static final String NO_PHASE_ID = "NO_PHASE_ID";

  public static FeedCheckpoint getFeedCheckpoint(EngineContext context) {
    final FeedCheckpointService service = (FeedCheckpointService) DataAccessContext.getBean(FeedCheckpointService.SERVICE_ID);
    final FeedFile feedFile = context.getFeedJob().getFeedFile();

    FeedCheckpoint checkpoint = service.findByFeedFileId(feedFile.getFeedFileId());

    if (checkpoint == null) {
      checkpoint = new FeedCheckpoint(NO_PHASE_ID, 0L, feedFile);
      service.insert(checkpoint);
    }

    return checkpoint;
  }

}
